package localDate;

import java.time.*;
import java.time.format.DateTimeFormatter;
import java.util.Date;

/**
 * Created with IntelliJ IDEA
 * Description: 第三代日期类学习
 * User:22954
 * Date:2024-02-01
 * Time:1:10
 */
public class Test {
    public static void main(String[] args) {
        /*
         * 三个日期类LocalDateTime LocalDate LocalTime
         * 构造方法都是private
         * 使用静态方法now()实例化日期对象
         */
        LocalDateTime localDateTime = LocalDateTime.now();//年月日时分秒
        LocalDate localDate = LocalDate.now();//年月日
        LocalTime localTime = LocalTime.now();//时分秒
        System.out.println(localDateTime);//2024-02-01T01:17:06.685702
        System.out.println(localDate);//2024-02-01
        System.out.println(localTime);//01:17:06.685702
        System.out.println(localDateTime.getDayOfYear() + " " + localDateTime.getHour());//32 1
        System.out.println(localDate.getDayOfYear());//32
        System.out.println(localTime.getHour());//1
        /*
          DateTimeFormatter类，可以格式化输出日期，类似SimpleDateFormatter
          构造方法被default修饰，用类方法ofPattern()设定格式
          只能用format()方法转换为字符串，不能将字符串转换为LocalDateTime
         */
        DateTimeFormatter dateTimeFormatter=DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH时mm分ss秒");
        String now=dateTimeFormatter.format(localDateTime);
        System.out.println(now);//2024年02月01日 01时39分02秒
        /*
          Instant时间戳
          构造方法被private修饰，使用类方法now()实例化
          时间戳存储日期的格式与其他不同，可以与Date相互转换
         */
        Instant instant=Instant.now();
        System.out.println(instant);//2024-01-31T17:54:07.005087800Z
        Date date=Date.from(instant);
        System.out.println(date);//Thu Feb 01 01:54:07 GMT+08:00 2024
        Instant instant1=date.toInstant();
        System.out.println(instant1);//2024-01-31T17:54:07.005Z
    }
}
